其他
ADC多通道随机选择性转换应用示例
我们在做ADC的时候,有时可能要用到多个通道,但并希望它们被同时启动,只是想依据不同的条件在不同的时刻对其中某一个ADC通达进行转换。基于这种应用场景,对有些STM32新手来说似乎还有点困难,这里使用STM32F4系列的一个开发板做个简单的应用演示,以供参考。
基本思路是这样的:
先使用STM32CubeMx做基本的配置,并生成初始化代码。在用CubeMx配置ADC时,只选择可能用到的多个通道的其中1个进行配置。这里我用到3个通道,分别是ADC1的CH8、CH12、CH17【CH17为Vrefint专用通道】。在用户代码中再做通道的改变。这里ADC选择软件启动。
这里我没有开启ADC相关中断,具体应用时可以按需配置。
当生成完初始化代码后,我在其基础上借助Cube库重新组织一个函数,用来针对任意ADC通道进行初始化。该函数用到两个参数,分别是通道号和对应于该通道的采样时间。
我在main()的主循环里,循环地针对CH8/CH9/CH17进行ADC转换。
这里我将CH8接GND,CH12接VDD,CH17内接Vrefint. 编译运行后可查看结果:
显然,整个过程还是非常简单的。不同的系列可能会略有差异,使用时结合具体的初始化代码灵活调整即可。
=========================================
往期话题链接【点击阅读】: